package com.wlsk.license.dto.response;

import cn.idev.excel.annotation.ExcelIgnore;
import cn.idev.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.wlsk.license.common.converter.CharterPlateStatusConverter;
import com.wlsk.license.common.converter.CharterPlateTypeConverter;
import com.wlsk.license.common.converter.CharterTypeConverter;
import com.wlsk.license.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;

/**
 * @description: 包车牌草稿分页查询响应结果
 * @author: system
 * @date: 2025/9/26
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel("包车牌草稿分页查询响应结果")
public class PlateDraftPageResultDto extends BaseDto {

    /**
     * 包车牌主键ID
     */
    @ExcelIgnore
    @ApiModelProperty("包车牌主键ID")
    private Long id;

    @ApiModelProperty("是否需要打印补录 \"1\" 是 其他否")
    @ExcelIgnore
    private String buLuFlag;

    /**
     * 申请编号
     */
    @ApiModelProperty("申请编号")
    @ExcelProperty(value = "申请编号", index = 0)
    private String applyNumber;

    /**
     * 包车牌类型包车客运标志牌
     * 20000947	省际包车客运标志牌
     * 20000945	县际包车客运标志牌
     * 20000944	县内包车客运标志牌
     */
    @ApiModelProperty("包车牌类型")
    @ExcelProperty(value = "包车牌类型", index = 1, converter = CharterPlateTypeConverter.class)
    private String charterPlateType;

    /**
     * 包车牌编号
     */
    @ApiModelProperty("包车牌编号")
    @ExcelProperty(value = "包车牌编号", index = 2)
    private String charterPlateNumber;

    /**
     * 包车类型
     */
    @ApiModelProperty("包车类型")
    @ExcelProperty(value = "包车类型", index = 3, converter = CharterTypeConverter.class)
    private String charterType;

    /**
     * 车牌号
     */
    @ApiModelProperty("车牌号")
    @ExcelProperty(value = "车牌号", index = 4)
    private String plateNumber;

    /**
     * 驾驶员姓名
     */
    @ApiModelProperty("驾驶员姓名")
    @ExcelProperty(value = "驾驶员", index = 5)
    private String driverName;

    /**
     * 出发城市
     */
    @ApiModelProperty("出发城市")
    @ExcelProperty(value = "出发城市", index = 6)
    private String routeStartPlace;

    /**
     * 目的城市
     */
    @ApiModelProperty("目的城市")
    @ExcelProperty(value = "目的城市", index = 7)
    private String routeEndPlace;

    /**
     * 总里程
     */
    @ApiModelProperty("总里程")
    @ExcelProperty(value = "总里程", index = 8)
    private Integer totalMileage;

    /**
     * 使用期限起
     */
    @ApiModelProperty("使用期限起")
    @ExcelProperty(value = "使用期限起", index = 9)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime beginDate;

    /**
     * 使用期限止
     */
    @ApiModelProperty("使用期限止")
    @ExcelProperty(value = "使用期限止", index = 10)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime endDate;

    /**
     * 申请状态
     */
    @ApiModelProperty("申请状态")
    @ExcelProperty(value = "申请状态", index = 11, converter = CharterPlateStatusConverter.class)
    private Integer charterPlateStatus;
    /**
     * 行业包车牌状态
     */
    @ApiModelProperty("行业包车牌状态")
    @ExcelIgnore
    private Integer tradeCharterPlateStatus;

    @ApiModelProperty("行业包车牌类型(1：A4电子包车牌、2:大牌子电子包车牌)")
    @ExcelIgnore
    private Integer plateProduceType;

    @ApiModelProperty("行业包车牌补录状态(0：未补录 1：系统补录失败 2：系统补录成功 3：人工补录失败 4：人工补录成功)")
    @ExcelIgnore
    private Integer printSupplementStatus;

    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ExcelIgnore
    private LocalDateTime createTime;

    /**
     * 包
     */
    @ApiModelProperty("包车牌本地下载ossid")
    @ExcelIgnore
    private String localFilePath;
}